package com.tsj.spzx.service;

import com.github.pagehelper.PageInfo;
import com.tsj.spzx.model.dto.system.AssginRoleDto;
import com.tsj.spzx.model.dto.system.LoginDto;
import com.tsj.spzx.model.dto.system.SysUserDto;
import com.tsj.spzx.model.entity.system.SysUser;
import com.tsj.spzx.model.vo.system.LoginVo;

public interface SysUserService {
    /**
     * 用户登录功能实现
     * @param loginDto
     * @return
     */
    LoginVo login(LoginDto loginDto);

    /**
     * 根据token获取用户信息
     * @param token
     * @return
     */
    // SysUser getUserInfoByToken(String token);

    /**
     * 用户退出登录
     * @param token
     */
    void logout(String token);

    /**
     * 用户信息条件分页查询
     * @param pageNum
     * @param pageSize
     * @param sysUserDto
     * @return
     */
    PageInfo<SysUser> finByPage(Integer pageNum, Integer pageSize, SysUserDto sysUserDto);

    /**
     * 添加用户
     * @param sysUser
     */
    void saveSysUser(SysUser sysUser);

    /**
     * 修改用户信息
     * @param sysUser
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 根据id删除用户
     * @param userId
     */
    void deleteSysUser(Integer userId);

    /**
     * 为用户分配角色
     * @param assginRoleDto
     */
    void doAssign(AssginRoleDto assginRoleDto);
}
